import java.util.*;

/**
 * HashMap
 * 计算补数 complement = target - nums[i]。
 * 若 complement 已在哈希表中，输出索引并返回。
 * 否则，将当前数值存入哈希表,key:值，value：索引
 */
public class TwoSum {
    public int[] getTwoSumN(int[] nums, int target){
        Map<Integer, Integer>hashtable = new HashMap<Integer,Integer>();
        for (int i = 0;i < nums.length;i++){
            if(hashtable.containsKey(target - nums[i])){
                return new int[]{hashtable.get(target-nums[i]), i};
            }
            hashtable.put(nums[i],i);
        }
        //返回一个空数组
        return new int[0];
    }

    /**
     * 两层遍历，元素之和=target就返回下标数组
     * @param nums
     * @param target
     * @return
     */
    public int[] twoSumN2(int[] nums, int target){
        for(int i =0;i < nums.length;i++){
            for(int j = i+1;j< nums.length;j++){
                if(nums[i]+nums[j] == target){
                    return new int[]{i,j};
                }
            }
        }
        return new int[0];
    }
}

